const express = require("express")

const app = express()
//
// app.get("/", (req,res) => {
//   // res.send(
//   //   `<html>
//   //      <h1>hello world</h1>
//   //        </html>`)
//   res.send({
//     name: "kerwin",
//     age: 100
//   })
// })

// 匹配acd 和 abcd
/*app.get("/ab?cd", (req,res) => {
  res.send("ok")
})*/

// get http://aa.com/detail/2222
// app.get("/ab/:id/:id2", (req,res) => {
//   res.send("ok")
// })

// 匹配 abcd, abbcd, abbbcd 等 +  b 可添加多次
// app.get("/ab+cd", (req,res) => {
//   res.send("ok")
// })

// // 匹配 abssscd, abbsscd, abbbcd 等*代表可以在b后面加任意字符
// app.get("/ab*cd", (req,res) => {
//   res.send("ok")
// })

// 匹配 abe, abcde
app.get("/ab(cd)?e", (req,res) => {
  res.send("ok")
})

// 使用正则表达式的路由路径示例
// 匹配任何路径中含有a的路径
// app.get(/a/, (req, res)=> {
//   res.send(/a/)
// })

// 匹配 butterfly, dragonfly, 不匹配 butterflyman, dragonfly man 等
app.get(/.*fly$/, function (req, res) {
  res.send(  '/.*fly$/')
})

// app.get("/home", (req, res, next)=> {
//   // 验证用户token过期，cookie过期
//   console.log("验证token")
//   const isValid = true
//   if (isValid) {
//     next()
//   } else {
//     // 返回错误
//     res.send("error")
//   }
// },(req, res)=> {
//   // 查询数据库
//   // 返回内容
//   res.send({list: [1,2,3]})
// })

const func1 = (req, res, next)=> {
  // 验证用户token过期，cookie过期
  console.log("验证token")
  const isValid = true
  if (isValid) {
    res.kerwin = "这是f1计算的结果"
    next()
  } else {
    // 返回错误
    res.send("error")
  }
}

const func2 = (req, res)=> {
  // 查询数据库
  // 返回内容
  console.log("111", res.kerwin)
  res.send({list: [1,2,3]})
}
app.get("/home", [func1, func2])

app.get("/list",[func1],(req,res)=> {
  res.send("list")
})

app.listen(3000, ()=> {
  console.log("sever start")
})